
# map 可以看作是把一个序列根据某种规则, 映射到另一个序列,
# reduce 做的事情就是把一个序列根据某种规则, 归纳为一个输出

# 比如求1-100的累加和
from functools import reduce

lst = range(1, 101)
def add(x, y):
    return x+y

print(reduce(add, lst))

# reduce(function, iterable[, initializer])
# 第一个参数是作用在序列上的方法, 第二个参数是被作用的序列, 第三个可选参数代表初始值
# 上面的例子中, function需要的是两个参数, 它会依次从序列中取出元素, 进行计算.
# 每次的计算结果会作为下次计算的第一个参数
# 提供初始值时, 它会作为第一次计算的第一个参数.
# function也可以用 lambda来表示
